// scripts/truncateTable.js

const db = require('../models');

async function truncateTable(tableName) {
  try {
    const model = db[tableName];

    if (!model) {
      console.error(`❌ 模型 "${tableName}" 不存在，请检查名称是否正确（注意大小写）`);
      process.exit(1);
    }

    console.log(`🚀 正在清空表：${tableName}...`);

    // 关闭外键检查
    await db.sequelize.query('SET FOREIGN_KEY_CHECKS = 0');

    // 真删除所有数据并重置主键
    await model.truncate();

    // 恢复外键检查
    await db.sequelize.query('SET FOREIGN_KEY_CHECKS = 1');

    console.log(`✅ 表 "${tableName}" 已成功清空并重置主键`);
  } catch (err) {
    console.error(`❌ 清空 "${tableName}" 失败:`, err);
  } finally {
    await db.sequelize.close();
  }
}

// 从命令行获取模型名
const tableName = process.argv[2];

if (!tableName) {
  console.error('❌ 请传入要清空的模型名，例如：node scripts/truncateTable.js Item');
  process.exit(1);
}

truncateTable(tableName);
